Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom context path configuation option #4011

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

litvinovg
Copy link
Collaborator

@litvinovg litvinovg commented Sep 27, 2024

VIVO GitHub issue: (please link to issue)
Vitro PR

What does this pull request do?

These new configuration options allow you to create correct links when the application is behind a proxy server, thus minimizing the required redirects.

What's new?

Added configuration option to modify context path in case when the application is behind proxy.
Replaced calls for context path to utility methods that allow overriding default context path.

How should this be tested?

Default behavior when configuration property is not set should be the same.
To test application behind proxy one would need to configure webserver and tomcat in proxy mode like described in workaround of linked issue.

  • General navigation between application pages
  • Authorization
  • Edit this individual page should work the same

#Additional notes

  • Duplicate tests were removed.
  • This change require documentation to be updated.

Interested parties

@VIVO-project/vivo-committers

Reviewers' expertise

Candidates for reviewing this PR should have some of the following expertises:

  1. Java

Reviewers' report template

General comment

A reviewer should provide here comments and suggestions for requested changes if any.

Testing

A reviewer should briefly describe here how it was tested

Code reviewing

A reviewer should briefly describe here which part was code reviewed

Copy link
Contributor

@chenejac chenejac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@litvinovg this is not fully functional in my case. I conducted the following testing steps on windows:

  1. Installed nginx for Windows
  2. Configure nginx.conf

location / {
proxy_pass http://localhost:8080/vivo/;
include proxy_params;
}

  1. Add proxy_params file with the following content

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

  1. Add in vivo_home/config/runtime.properties

context.path=

The first page is loaded properly including css. Moreover, I can browse through individual pages, persons, organizations, etc. Search page is also working.

I can't login. Also, I can't open any visualization (capability map, map of science, co-author network, and there is always the same message:

Inappropriate query parameters were submitted.

@chenejac
Copy link
Contributor

@litvinovg after configuring sessionCookiePath="/" for Context in tomcat, I can log in, but the issue with visualization is still there.

I can edit data properties, for instance publication date for an academic article, but if I select Edit individual I am getting the error message (in the form of java script alert) - A server error has occurred.

@litvinovg
Copy link
Collaborator Author

Visualizations should work now, I reverted one mistakenly made change that broke it.
Regarding "Edit this individual" page please take a look at the apache2 example configuration in the issue.
There is a need for specific location match for requests that start with /vivo_app_name/dwr/ as DWR can't be configured to use custom context path.
So I guess you need something like that in addition to your configuration in nginx.conf
location ^~ /vivo/dwr/ {
proxy_pass http://localhost:8080;
include proxy_params;
}

@chenejac
Copy link
Contributor

Visualizations should work now, I reverted one mistakenly made change that broke it. Regarding "Edit this individual" page please take a look at the apache2 example configuration in the issue. There is a need for specific location match for requests that start with /vivo_app_name/dwr/ as DWR can't be configured to use custom context path. So I guess you need something like that in addition to your configuration in nginx.conf location ^~ /vivo/dwr/ { proxy_pass http://localhost:8080; include proxy_params; }

@litvinovg I can confirm visualizations work now. Moreover, after additional configuration DWR is not an issue anymore. In my case, the configuration is

 location /vivo/dwr/ {
			proxy_pass http://localhost:8080;
			include proxy_params;
        }
		
location / {
			proxy_pass http://localhost:8080/vivo/;
			include proxy_params;
        }

I think we should point/warn customers to this specific location configuration for DWR in example.runtime.properties in the comment above contextPath parameter (in Vitro and VIVO).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants